package zhh.tangbao.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import zhh.tangbao.system.entity.PagerEntity;
import zhh.tangbao.user.dto.*;
import zhh.tangbao.user.vo.AuthorityVo;
import zhh.tangbao.user.vo.UserDetailInfoVo;
import zhh.tangbao.user.vo.UserPageVo;
import zhh.tangbao.user.vo.UserVo;
import zhh.tangbao.wechat.entity.WeChatUser;

import java.util.List;

/**
 * @author 粥灰灰
 * @created 2022/8/20
 * @version 1.0
 * @Description 用户服务层
 */
public interface UserService {
    UserVo getUserVo(String userId);

    AuthorityVo userLogin(UserLoginDto dto);

    int addUser(UserDto dto);

    int deleteUser(long id);

    int updateUser(UserDto dto);

    int updatePassword(UserPasswordDto dto);

    boolean userExist(String account);

    void logout();

    int addReplenishment(String id);

    int cancelReplenishment(String phone);

    Page<WeChatUser> wechatUserPage(WeChatUserDto dto);

    boolean isOnline();


    PagerEntity<UserPageVo> page(PagerEntity<UserPageVo> pager, UserDto dto);

    /**
     * 禁用账号
     */
    void banUser(UserBannedDto dto);

    void unBanUser(UserBannedDto dto);

    int addAdmin(UserDto dto);

    UserDetailInfoVo getUserDetailInfo(String id);

    int batchDeleteUser(List<String> ids);
}
